import CryptoJS from 'crypto-js'

// 生成 GET 请求签名
export function generateSignatureGet(path, params, sk) {
	// 1. 参数排序
	const sortedParams = Object.keys(params)
		.sort()
		.reduce((acc, key) => {
			acc[key] = params[key]
			return acc
		}, {}) 

	// 2. 拼接原始签名字符串
	let rawStr = `${path}?`
	Object.entries(sortedParams).forEach(([key, value], index) => {
		rawStr += `${key}=${value}`
		if (index < Object.keys(sortedParams).length - 1) {
			rawStr += '&'
		}
	})
	rawStr += sk // 添加 SecretKey

	// 3. 计算 MD5 签名
	const signature = CryptoJS.MD5(rawStr).toString().toLowerCase()
	return signature
}